home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 106 / EnigmaAmiga106CD.iso / software / utilities / installer / gui api / example / igui_querydisplay.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-08-27  |  2.2 KB  |  92 lines

  1.  
  2. #include "includes.h"
  3. #include "installergui_data.h"
  4.  
  5. /********************************************************************
  6.  *
  7.  *  DESCRIPTION
  8.  *
  9.  */
  10.  
  11. /********************************************************************
  12.  *
  13.  *  STATIC
  14.  *
  15.  */
  16.  
  17. /********************************************************************
  18.  *
  19.  *  EXTERN
  20.  *
  21.  */
  22.  
  23. /********************************************************************
  24.  *
  25.  *  PUBLIC
  26.  *
  27.  */
  28.  
  29. /********************************************************************
  30.  *
  31.  *  CODE
  32.  *
  33.  */
  34.  
  35. long __asm igui_QueryDisplay(register __a0 APTR application,
  36.                              register __d0 long object,
  37.                              register __d1 long attribute)
  38. {
  39.   #ifdef DEBUG
  40.   DEBUG_MAKRO
  41.   #endif
  42.  
  43.   {
  44.     long retval = 0;
  45.     struct Application *app = application;
  46.  
  47.     struct Screen *scr;
  48.     struct Window *win;
  49.  
  50.     // get the pointers to the structures
  51.     GetAttr(MUIA_Window_Screen, app->app_MainWindow, (ULONG *) &scr);
  52.     GetAttr(MUIA_Window_Window, app->app_MainWindow, (ULONG *) &win);
  53.  
  54.     // which object (screen or window)
  55.     switch (object)
  56.     {
  57.       // get a screen attribute
  58.       case GUI_QUERYOBJ_SCREEN:
  59.       {
  60.         switch (attribute)
  61.         {
  62.           case GUI_QUERYATTR_WIDTH:    { retval = scr->Width; break; }
  63.           case GUI_QUERYATTR_HEIGHT:   { retval = scr->Height; break; }
  64.           case GUI_QUERYATTR_DEPTH:    { retval = scr->BitMap.Depth; break; }
  65.           case GUI_QUERYATTR_COLORS:   { retval = 1<<(scr->BitMap.Depth); break; }
  66.         }
  67.  
  68.         break;
  69.       }
  70.  
  71.       // get a window attribute
  72.       case GUI_QUERYOBJ_WINDOW:
  73.       {
  74.         switch (attribute)
  75.         {
  76.           case GUI_QUERYATTR_WIDTH:    { retval = win->Width; break; }
  77.           case GUI_QUERYATTR_HEIGHT:   { retval = win->Height; break; }
  78.           case GUI_QUERYATTR_UPPER:    { retval = win->TopEdge - scr->BarHeight - 1; break; }
  79.           case GUI_QUERYATTR_LOWER:    { retval = scr->Height - (win->TopEdge + win->Height); break; }
  80.           case GUI_QUERYATTR_LEFT:     { retval = win->LeftEdge; break; }
  81.           case GUI_QUERYATTR_RIGHT:    { retval = scr->Width - (win->LeftEdge + win->Width); break; }
  82.         }
  83.  
  84.         break;
  85.       }
  86.     }
  87.  
  88.     return (retval);
  89.   }
  90. }
  91.  
  92.